
package parser;

import java.util.List;

import lexer.Token;

/**
 * Traductor dirigido por la sintaxis que sintetiza un objeto de tipo
 * T desde las hojas hasta la raíz.
 */
public interface SyntaxTranslator<T> {
	
	/**
	 * Traduce un terminal.
	 */
	T translateTerminal(Token t);
	
	/**
	 * Traduce un no terminal.
	 */
	T translateNonterminal(Production p, List<T> children);
	
}
